package com.dyzx.hbb.modules.fcxs.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serial;
import java.io.Serializable;

/**
 * 房屋更新视图对象
 *
 * @author AI Assistant
 * @date 2023-07-10
 */

@Data
@Schema(description = "房屋更新视图对象")
public class FcxsHouseUVO  implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @Schema(description = "主键ID")
    @NotNull(message = "主键ID不能为空")
    @JsonProperty("id")
    private Long id;

    /**
     * 分类 字典信息：fcxs_house_category
     */
    @Schema(description = "分类")
   // @NotNull(message = "分类不能为空")
    @JsonProperty("category")
    private Integer category;
    //房源号 自动生成   房源号格式=类型/楼栋号-楼层-房号
    /**
     * 类型 字典信息：fcxs_house_type
     */
    @Schema(description = "类型")
    @JsonProperty("type")
    private Integer type;

    /**
     * 楼栋号
     */
    @Schema(description = "楼栋号")
  //  @NotNull(message = "楼栋号不能为空")
    @JsonProperty("building_num")
    private Integer buildingNum;

    /**
     * 楼层
     */
    @Schema(description = "楼层")
  //  @NotNull(message = "楼层不能为空")
    @JsonProperty("floor")
    private Integer floor;

    /**
     * 房号
     */
    @Schema(description = "房号")
   // @NotNull(message = "房号不能为空")
    @JsonProperty("room_num")
    private Integer roomNum;

    /**
     * 套内面积
     */
    @Schema(description = "套内面积")
    @JsonProperty("inner_area")
    private Integer innerArea;

    /**
     * 公摊面积
     */
    @Schema(description = "公摊面积")
    @JsonProperty("public_area")
   // @NotNull(message = "公摊面积不能为空")
    private Integer publicArea;

    /**
     * 建筑面积 建筑面积=套内面积+公摊面积
     */
    @Schema(description = "建筑面积")
    @JsonProperty("area")
  //  @NotNull(message = "建筑面积不能为空")
    private Integer area;

    /**
     * 状态 字典信息：sys_global_status
     */
    @Schema(description = "状态")
    @JsonProperty("status")
    private Integer status;

    /**
     * 房源号 自动生成   房源号格式=类型/楼栋号-楼层-房号
     */
    @Schema(description = "房源号")
    @JsonProperty(value = "house_no",access = JsonProperty.Access.READ_ONLY)
    private String houseNo;
    /**
     * 获取自动生成的房源号
     * @return 格式为 类型/楼栋号-楼层-房号 的字符串
     */
/*    public String getHouseNo() {
        return type + "/" + buildingNum + "-" + floor + "-" + roomNum;
    }*/

    /**
     * 指导单价
     */
    @Schema(description = "指导单价")
    @JsonProperty("price")
  //  @NotNull(message = "指导单价不能为空")
    private Long price;


    /**
     * 单元号
     */
    @Schema(description = "单元号")
    @JsonProperty("unit")
    private Integer unit;

}
